/*
 * Copyright 2003-2005 (c) Live Media Pty Ltd. <argot@einet.com.au> 
 *
 * This software is licensed under the Argot Public License 
 * which may be found in the file LICENSE distributed 
 * with this software.
 *
 * More information about this license can be found at
 * http://www.einet.com.au/License
 * 
 * The Developer of this software is Live Media Pty Ltd,
 * PO Box 4591, Melbourne 3001, Australia.  The license is subject 
 * to the law of Victoria, Australia, and subject to exclusive 
 * jurisdiction of the Victorian courts.
 */

#ifndef TYPEMAPCORE
#define TYPEMAPCORE

#ifdef __cplusplus
extern "C" {
#endif

#define EMPTY_ID  1
#define UINT8_ID 2
#define UINT16_ID 3
#define BASIC_ID 4
#define ABSTRACT_ID 5
#define MAP_ID 6
#define EXPRESSION_ID 7
#define SEQUENCE_ID 8
#define REFERENCE_ID 9
#define NAME_ID 10
#define ENCODED_ID 11
#define ARRAY_ID 12
#define EXPRESSION_REFERENCE_ID 13
#define EXPRESSION_SEQUENCE_ID 14
#define EXPRESSION_ARRAY_ID 15
#define EXPRESSION_ENCODING_ID 16
#define DEFINITION_ID 17
#define DEFINITION_BASIC_ID 18
#define DEFINITION_MAP_ID 19
#define DEFINITION_SEQUENCE_ID 20
#define DEFINITION_ABSTRACT_ID 21

extern int type_map_core_ids[];

/* WARNING MAGIC NUMBER */
#define type_map_core_get_identifiers( map, ids, size ) (*ids)=type_map_core_ids; (*size)=21

int type_map_core_init( reference_type_map * map );

#ifdef __cplusplus
}
#endif

#endif
